package com.bestcem.xm.txtanls.util;

import com.bestcem.xm.txtanls.enums.IndustryCodeEnum;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 行业观点工具类
 *
 * @author XiaoYunSong <ys.xiao@idiaoyan.com>
 * @version v1.0
 * @date 2021/5/12-16:48
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class ViewpointUtil {
    public static final String OTHER = "其他";
    public static final String ZH = "zh";
    public static final String ROW = "row";


    /**
     * 餐饮相关观点
     */
    public static final Map<String, Map<String, List<String>>> INIT_DIET_VIEWS_DICT = new HashMap<>();

    static {
//        Map<String, List<String>> INIT_DIET_VIEWS_DICT_OTHER = new HashMap<>();
//        INIT_DIET_VIEWS_DICT_OTHER.put(ZH, Arrays.asList("安静舒适", "包装外观", "菜品丰富", "菜品推荐", "餐具设备", "餐厅推荐", "分量",
//                "服务速度", "干净", "价格水平", "价格折扣", "交通便利", "靠近商圈", "口味", "卖家服务", "媒体/政府类", "排队感受", "食品生熟",
//                "提供发票", "停车方便", "外观", "位置容易找到", "新鲜度", "性价比", "虚假营销", "愿意再次消费", "整洁卫生", "装修风格"));
//        INIT_DIET_VIEWS_DICT_OTHER.put(ROW, Arrays.asList("安静舒适", "包装外观", "菜品丰富", "菜品推荐", "餐具设备", "餐厅推荐", "分量",
//                "服务速度", "干净", "价格水平", "价格折扣", "交通便利", "靠近商圈", "口味", "卖家服务", "媒体/政府类", "排队感受", "食品生熟",
//                "提供发票", "停车方便", "外观", "位置容易找到", "新鲜度", "性价比", "虚假营销", "愿意再次消费", "整洁卫生", "装修风格"));
//        INIT_DIET_VIEWS_DICT.put(OTHER, INIT_DIET_VIEWS_DICT_OTHER);
        // 菜品观点组及其观点
        Map<String, List<String>> dictView1 = new HashMap<>();
        dictView1.put(ZH, Arrays.asList("口味", "外观", "分量", "菜品推荐度", "新鲜度", "干净度", "包装外观", "菜品丰富度", "食品生熟度"));
        dictView1.put(ROW, Arrays.asList("口味", "外观", "分量", "菜品推荐度", "新鲜度", "干净度", "包装外观", "菜品丰富度", "食品生熟度"));
        INIT_DIET_VIEWS_DICT.put("菜品", dictView1);

        // 服务观点组及其观点
        Map<String, List<String>> dictView2 = new HashMap<>();
        dictView2.put(ZH, Arrays.asList("卖家服务", "服务速度", "排队感受", "提供发票", "餐厅推荐度"));
        dictView2.put(ROW, Arrays.asList("卖家服务", "服务速度", "排队感受", "提供发票", "餐厅推荐度"));
        INIT_DIET_VIEWS_DICT.put("服务", dictView2);

        // 环境观点组及其观点
        Map<String, List<String>> dictView3 = new HashMap<>();
        dictView3.put(ZH, Arrays.asList("装修风格", "环境卫生程度", "安静舒适度", "餐具设备"));
        dictView3.put(ROW, Arrays.asList("装修风格", "环境卫生程度", "安静舒适度", "餐具设备"));
        INIT_DIET_VIEWS_DICT.put("环境", dictView3);

        // 价格观点组及其观点
        Map<String, List<String>> dictView4 = new HashMap<>();
        dictView4.put(ZH, Arrays.asList("性价比", "价格水平", "价格折扣"));
        dictView4.put(ROW, Arrays.asList("性价比", "价格水平", "价格折扣"));
        INIT_DIET_VIEWS_DICT.put("价格", dictView4);

        // 位置观点组及其观点
        Map<String, List<String>> dictView5 = new HashMap<>();
        dictView5.put(ZH, Arrays.asList("是否靠近商圈", "位置是否好找", "交通便利度", "停车便利度"));
        dictView5.put(ROW, Arrays.asList("是否靠近商圈", "位置是否好找", "交通便利度", "停车便利度"));
        INIT_DIET_VIEWS_DICT.put("位置", dictView5);

        // 其他观点组及其观点
        Map<String, List<String>> dictView6 = new HashMap<>();
        dictView6.put(ZH, Arrays.asList("再次消费意愿", "营销真实度", "媒体/政府类"));
        dictView6.put(ROW, Arrays.asList("再次消费意愿", "营销真实度", "媒体/政府类"));
        INIT_DIET_VIEWS_DICT.put("其他", dictView6);
    }

    /**
     * 零售相关观点
     */
    public static final Map<String, Map<String, List<String>>> INIT_RETAIL_VIEWS_DICT = new HashMap<>();

    static {
//        Map<String, List<String>> INIT_RETAIL_VIEWS_DICT_OTHER = new HashMap<>();
//        INIT_RETAIL_VIEWS_DICT_OTHER.put(ZH, Arrays.asList("安静舒适", "包装", "便利性", "成分", "分量", "服务速度", "环境空间", "价格水平",
//                "交通便捷", "靠近商圈", "卖家服务", "媒体/政府类", "配件赠品", "品类推荐", "品质", "商品摆放", "商品供应", "食品安全", "提供发票",
//                "味道", "位置容易找到", "物流", "线上平台", "携带方便", "新品更新速度", "性价比", "虚假营销", "愿意再次消费", "折扣优惠", "整洁卫生", "种类丰富"));
//        INIT_RETAIL_VIEWS_DICT_OTHER.put(ROW, Arrays.asList("安静舒适", "包装", "便利性", "成分", "分量", "服务速度", "环境空间", "价格水平",
//                "交通便捷", "靠近商圈", "卖家服务", "媒体/政府类", "配件赠品", "品类推荐", "品质", "商品摆放", "商品供应", "食品安全", "提供发票",
//                "味道", "位置容易找到", "物流", "线上平台", "携带方便", "新品更新速度", "性价比", "虚假营销", "愿意再次消费", "折扣优惠", "整洁卫生", "种类丰富"));
//        INIT_RETAIL_VIEWS_DICT.put(OTHER, INIT_RETAIL_VIEWS_DICT_OTHER);
        // 服务观点组及其观点
        Map<String, List<String>> retailView1 = new HashMap<>();
        retailView1.put(ZH, Arrays.asList("服务速度", "卖家服务", "提供发票", "物流"));
        retailView1.put(ROW, Arrays.asList("服务速度", "卖家服务", "提供发票", "物流"));
        INIT_RETAIL_VIEWS_DICT.put("服务", retailView1);

        // 环境观点组及其观点
        Map<String, List<String>> retailView2 = new HashMap<>();
        retailView2.put(ZH, Arrays.asList("安静舒适度", "环境空间", "环境卫生程度"));
        retailView2.put(ROW, Arrays.asList("安静舒适度", "环境空间", "环境卫生程度"));
        INIT_RETAIL_VIEWS_DICT.put("环境", retailView2);

        // 价格观点组及其观点
        Map<String, List<String>> retailView3 = new HashMap<>();
        retailView3.put(ZH, Arrays.asList("价格水平", "性价比"));
        retailView3.put(ROW, Arrays.asList("价格水平", "性价比"));
        INIT_RETAIL_VIEWS_DICT.put("价格", retailView3);

        // 商品观点组及其观点
        Map<String, List<String>> retailView4 = new HashMap<>();
        retailView4.put(ZH, Arrays.asList("包装", "便利性", "商品供应", "成分", "分量", "品质", "食品安全", "携带便利性", "新品更新速度", "种类丰富度"));
        retailView4.put(ROW, Arrays.asList("包装", "便利性", "商品供应", "成分", "分量", "品质", "食品安全", "携带便利性", "新品更新速度", "种类丰富度"));
        INIT_RETAIL_VIEWS_DICT.put("商品", retailView4);

        // 位置观点组及其观点
        Map<String, List<String>> retailView5 = new HashMap<>();
        retailView5.put(ZH, Arrays.asList("交通便利度", "是否靠近商圈", "位置是否好找"));
        retailView5.put(ROW, Arrays.asList("交通便利度", "是否靠近商圈", "位置是否好找"));
        INIT_RETAIL_VIEWS_DICT.put("位置", retailView5);

        // 营销观点组及其观点
        Map<String, List<String>> retailView6 = new HashMap<>();
        retailView6.put(ZH, Arrays.asList("配件赠品", "品类推荐", "商品摆放", "营销真实度", "折扣优惠"));
        retailView6.put(ROW, Arrays.asList("配件赠品", "品类推荐", "商品摆放", "营销真实度", "折扣优惠"));
        INIT_RETAIL_VIEWS_DICT.put("营销", retailView6);

        // 其他观点组及其观点
        Map<String, List<String>> retailView7 = new HashMap<>();
        retailView7.put(ZH, Arrays.asList("再次消费意愿", "媒体/政府类", "线上平台"));
        retailView7.put(ROW, Arrays.asList("再次消费意愿", "媒体/政府类", "线上平台"));
        INIT_RETAIL_VIEWS_DICT.put("其他", retailView7);
    }

    /**
     * 地产相关观点
     */
    public static final Map<String, Map<String, List<String>>> INIT_ESTATE_VIEWS_DICT = new HashMap<>();

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_ONE = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_ONE.put(ZH, Arrays.asList("人员服务-接待态度", "人员服务-问题解决效率"));
        INIT_ESTATE_VIEWS_DICT_ONE.put(ROW, Arrays.asList("人员服务-接待态度", "人员服务-问题解决效率"));
        INIT_ESTATE_VIEWS_DICT.put("人员服务", INIT_ESTATE_VIEWS_DICT_ONE);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_TWO = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_TWO.put(ZH, Arrays.asList("环境及设施-卫生", "环境及设施-温度", "环境及设施-灯光明暗度", "环境及设施-背景音乐",
                "环境及设施-电梯", "环境及设施-免费wifi", "环境及设施-空气气味", "环境及设施-公共休息区", "环境及设施-屏幕设备"));
        INIT_ESTATE_VIEWS_DICT_TWO.put(ROW, Arrays.asList("环境及设施-卫生", "环境及设施-温度", "环境及设施-灯光明暗度", "环境及设施-背景音乐",
                "环境及设施-电梯", "环境及设施-免费wifi", "环境及设施-空气气味", "环境及设施-公共休息区", "环境及设施-屏幕设备"));
        INIT_ESTATE_VIEWS_DICT.put("环境及设施", INIT_ESTATE_VIEWS_DICT_TWO);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_THREE = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_THREE.put(ZH, Arrays.asList("会员服务-会员活动", "会员服务-会员积分", "会员服务-会员礼品"));
        INIT_ESTATE_VIEWS_DICT_THREE.put(ROW, Arrays.asList("会员服务-会员活动", "会员服务-会员积分", "会员服务-会员礼品"));
        INIT_ESTATE_VIEWS_DICT.put("会员服务", INIT_ESTATE_VIEWS_DICT_THREE);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_FOUR = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_FOUR.put(ZH, Arrays.asList("宣传推广-信息传递及时", "宣传推广-活动是否力度（SP活动）", "宣传推广-活动是否有趣（PR活动）"));
        INIT_ESTATE_VIEWS_DICT_FOUR.put(ROW, Arrays.asList("宣传推广-信息传递及时", "宣传推广-活动是否力度（SP活动）", "宣传推广-活动是否有趣（PR活动）"));
        INIT_ESTATE_VIEWS_DICT.put("宣传推广", INIT_ESTATE_VIEWS_DICT_FOUR);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_FIVE = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_FIVE.put(ZH, Arrays.asList("系统支持-会员系统", "系统支持-公众号", "系统支持-付款系统"));
        INIT_ESTATE_VIEWS_DICT_FIVE.put(ROW, Arrays.asList("系统支持-会员系统", "系统支持-公众号", "系统支持-付款系统"));
        INIT_ESTATE_VIEWS_DICT.put("系统支持", INIT_ESTATE_VIEWS_DICT_FIVE);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_SIX = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_SIX.put(ZH, Arrays.asList("退换货处理-退换货处理"));
        INIT_ESTATE_VIEWS_DICT_SIX.put(ROW, Arrays.asList("退换货处理-退换货处理"));
        INIT_ESTATE_VIEWS_DICT.put("退换货处理", INIT_ESTATE_VIEWS_DICT_SIX);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_SEVEN = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_SEVEN.put(ZH, Arrays.asList("品类品牌-品牌丰富", "品类品牌-品牌独特", "品类品牌-产品价位", "品类品牌-产品品质"));
        INIT_ESTATE_VIEWS_DICT_SEVEN.put(ROW, Arrays.asList("品类品牌-品牌丰富", "品类品牌-品牌独特", "品类品牌-产品价位", "品类品牌-产品品质"));
        INIT_ESTATE_VIEWS_DICT.put("品类品牌", INIT_ESTATE_VIEWS_DICT_SEVEN);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_EIGHT = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_EIGHT.put(ZH, Arrays.asList("停车服务-停车指引", "停车服务-车位数量", "停车服务-车位指示灯显示",
                "停车服务-充电桩", "停车服务-地库进出便捷性", "停车服务-停车收费", "停车服务-寻车导航"));
        INIT_ESTATE_VIEWS_DICT_EIGHT.put(ROW, Arrays.asList("停车服务-停车指引", "停车服务-车位数量", "停车服务-车位指示灯显示",
                "停车服务-充电桩", "停车服务-地库进出便捷性", "停车服务-停车收费", "停车服务-寻车导航"));
        INIT_ESTATE_VIEWS_DICT.put("停车服务", INIT_ESTATE_VIEWS_DICT_EIGHT);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_NINE = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_NINE.put(ZH, Arrays.asList("外部环境-外广场环境/室外街环境", "外部环境-交通便利性"));
        INIT_ESTATE_VIEWS_DICT_NINE.put(ROW, Arrays.asList("外部环境-外广场环境/室外街环境", "外部环境-交通便利性"));
        INIT_ESTATE_VIEWS_DICT.put("外部环境", INIT_ESTATE_VIEWS_DICT_NINE);
    }

    static {
        Map<String, List<String>> INIT_ESTATE_VIEWS_DICT_TEN = new HashMap<>();
        INIT_ESTATE_VIEWS_DICT_TEN.put(ZH, Arrays.asList("餐饮业态-价格", "餐饮业态-环境", "餐饮业态-上菜速度"));
        INIT_ESTATE_VIEWS_DICT_TEN.put(ROW, Arrays.asList("餐饮业态-价格", "餐饮业态-环境", "餐饮业态-上菜速度"));
        INIT_ESTATE_VIEWS_DICT.put("餐饮业态", INIT_ESTATE_VIEWS_DICT_TEN);
    }

    /**
     * 观点展示别名映射
     */
    public static final Map<String, String> VIEW_SHOW_ALIAS_MAP = new HashMap<>();

    static {
        VIEW_SHOW_ALIAS_MAP.put("菜品推荐", "菜品推荐度");
        VIEW_SHOW_ALIAS_MAP.put("干净", "干净度");
        VIEW_SHOW_ALIAS_MAP.put("菜品丰富", "菜品丰富度");
        VIEW_SHOW_ALIAS_MAP.put("食品生熟", "食品生熟度");
        VIEW_SHOW_ALIAS_MAP.put("餐厅推荐", "餐厅推荐度");
        VIEW_SHOW_ALIAS_MAP.put("整洁卫生", "环境卫生程度");
        VIEW_SHOW_ALIAS_MAP.put("安静舒适", "安静舒适度");
        VIEW_SHOW_ALIAS_MAP.put("靠近商圈", "是否靠近商圈");
        VIEW_SHOW_ALIAS_MAP.put("位置容易找到", "位置是否好找");
        VIEW_SHOW_ALIAS_MAP.put("交通便利", "交通便利度");
        VIEW_SHOW_ALIAS_MAP.put("停车方便", "停车便利度");
        VIEW_SHOW_ALIAS_MAP.put("愿意再次消费", "再次消费意愿");
        VIEW_SHOW_ALIAS_MAP.put("虚假营销", "营销真实度");
        VIEW_SHOW_ALIAS_MAP.put("携带方便", "携带便利性");
        VIEW_SHOW_ALIAS_MAP.put("种类丰富", "种类丰富度");
        VIEW_SHOW_ALIAS_MAP.put("交通便捷", "交通便利度");
    }

    /**
     * 行业对应关键字字典
     */
    public static final Map<IndustryCodeEnum, Map<String, Map<String, List<String>>>> TRADE_DICT = new HashMap<>();

    static {
        TRADE_DICT.put(IndustryCodeEnum.DIET, INIT_DIET_VIEWS_DICT);
        TRADE_DICT.put(IndustryCodeEnum.RETAIL, INIT_RETAIL_VIEWS_DICT);
        // 大数据已经没有地产的观点训练了
        // TRADE_DICT.put(IndustryCodeEnum.ESTATE, INIT_ESTATE_VIEWS_DICT);
    }

    /**
     * 免费版观点字典
     */
    public static final Map<String, String> FREE_DICT_VIEWS = new HashMap<>();

    static {
        FREE_DICT_VIEWS.put("location_traffic_convenience", "交通便利");
        FREE_DICT_VIEWS.put("location_distance_from_business_district", "靠近商圈");
        FREE_DICT_VIEWS.put("location_easy_to_find", "位置容易找到");
        FREE_DICT_VIEWS.put("service_wait_time", "排队感受");
        FREE_DICT_VIEWS.put("service_waiters_attitude", "服务态度");
        FREE_DICT_VIEWS.put("service_parking_convenience", "停车方便");
        FREE_DICT_VIEWS.put("service_serving_speed", "服务速度");
        FREE_DICT_VIEWS.put("service_providing_ticket", "提供发票");
        FREE_DICT_VIEWS.put("service_packing_look", "包装外观");
        FREE_DICT_VIEWS.put("service_device", "设备");
        FREE_DICT_VIEWS.put("price_level", "价格水平");
        FREE_DICT_VIEWS.put("price_cost_effective", "性价比");
        FREE_DICT_VIEWS.put("price_discount", "价格折扣");
        FREE_DICT_VIEWS.put("environment_decoration", "环境装修");
        FREE_DICT_VIEWS.put("environment_restrant_atmosphere", "餐厅氛围");
        FREE_DICT_VIEWS.put("environment_noise", "环境噪音");
        FREE_DICT_VIEWS.put("environment_space", "环境空间");
        FREE_DICT_VIEWS.put("environment_cleaness", "整洁卫生");
        FREE_DICT_VIEWS.put("environment_site_design", "餐位设计");
        FREE_DICT_VIEWS.put("dish_portion", "菜品份量");
        FREE_DICT_VIEWS.put("dish_taste", "菜品口味");
        FREE_DICT_VIEWS.put("dish_look", "菜品外观");
        FREE_DICT_VIEWS.put("dish_rich", "菜品丰富");
        FREE_DICT_VIEWS.put("dish_recommendation", "菜品推荐");
        FREE_DICT_VIEWS.put("others_overall_experience", "餐厅推荐");
        FREE_DICT_VIEWS.put("others_willing_to_consume_again", "愿意再次消费");

    }


    /**
     * 免费版话题字典
     */
    public static final Map<String, List<String>> FREE_TOPIC_DICT = new HashMap<>();

    static {
        FREE_TOPIC_DICT.put("菜品", Arrays.asList("菜品口味", "菜品口感", "菜品分量", "菜品价格", "菜品种类", "菜品外观", "食品安全"));
        FREE_TOPIC_DICT.put("服务", Arrays.asList("服务速度", "服务态度", "服务质量", "包装质量"));
        FREE_TOPIC_DICT.put("环境", Arrays.asList("清洁", "设备", "用餐环境"));
        FREE_TOPIC_DICT.put("其他", Arrays.asList("媒体/政府类", "促销执行类"));
    }

    /**
     * 免费版关键字字典
     */
    public static final Map<String, List<String>> FREE_KEYWORD_DICT = new HashMap<>();

    static {
        FREE_KEYWORD_DICT.put("促销执行类", Arrays.asList("强制", "捆绑", "欺诈", "虚假", "忽悠", "套路", "强买强卖", "太假", "欺骗"));
        FREE_KEYWORD_DICT.put("菜品口味", Arrays.asList("淡", "不够咸", "肥", "有点辣", "太辣", "不够辣", "太甜", "有点甜", "糖多", "不够甜", "没放糖", "温度低", "无法喝", "油腻", "有点油", "太油", "有点腻", "不新鲜", "口味差", "不好吃", "难吃", "味道一般", "不好喝", "寡淡", "无味", "口味越来越差", "不入味", "倒胃口", "太咸", "有点咸", "少油盐", "腥", "苦", "咸淡不均匀", "味精太浓", "有点浓", "味精多", "没以前好"));
        FREE_KEYWORD_DICT.put("服务速度", Arrays.asList("速度慢", "等的时间长", "出餐时间长", "不熟练", "反应慢", "加强培训"));
        FREE_KEYWORD_DICT.put("菜品价格", Arrays.asList("性价比低", "不划算", "价值感差", "优惠力度小", "不实惠", "涨价", "贵", "偏贵", "太贵", "有点贵", "价格高", "价格偏高", "不便宜", "收费", "标价", "价格过高"));

        FREE_KEYWORD_DICT.put("包装质量", Arrays.asList("包装不好", "包装简陋", "包装受损", "洒漏"));
        FREE_KEYWORD_DICT.put("服务态度", Arrays.asList("不礼貌", "不致歉", "冷淡", "骚扰", "服务态度差", "爱理不理", "态度恶劣", "不主动", "不为客人考虑", "早日关门", "苦瓜脸", "员工太懒散", "态度不好", "态度极差", "欠钱", "说话冲", "翻白眼", "吵架", "谩骂", "扔", "抱怨", "很烦", "偷奸耍滑", "忽视", "差评", "态度差", "态度太差", "诚信"));
        FREE_KEYWORD_DICT.put("用餐环境", Arrays.asList("嘈杂", "空间拥挤", "乱", "无人收拾", "座位少", "热", "没有冷气", "没开空调", "闷", "空调不够冷", "声音大", "声音小点", "油烟大", "太小", "店面太小", "店小", "店面小"));
        FREE_KEYWORD_DICT.put("食品安全", Arrays.asList("玻璃", "金属", "硬骨", "橡皮筋", "钢丝球", "头发", "异物", "创口贴", "塑料", "纸巾", "毛", "石子", "腹泻", "拉肚子", "呕吐", "过敏", "打点滴", "挂盐水", "恶心", "不熟", "未熟", "没有熟", "生的", "没熟", "没熟透", "血丝", "血色", "虫", "蛆", "苍蝇", "蟑螂", "小强", "蚊子", "小虫子", "虫子", "变质", "腐败", "发臭", "发酸", "长霉", "过期", "不新鲜", "产品质量", "质量", "异味", "怪味", "嗖味", "发黑变色", "筷子发霉"));
        FREE_KEYWORD_DICT.put("设备", Arrays.asList("没有wifi"));
        FREE_KEYWORD_DICT.put("菜品种类", Arrays.asList("种类少", "品种少", "单一", "没有素菜", "没有蔬菜", "多些花样"));
        FREE_KEYWORD_DICT.put("菜品口感", Arrays.asList("不脆", "硬", "老", "不够嫩", "烂", "不糯", "软", "太熟", "太干", "有点干", "面坨", "不劲道", "没有嚼劲", "没有韧性", "糊糊", "有点生", "太生", "蛋壳", "稀", "凉", "温度低", "裹粉不均匀", "裹粉太多", "裹粉有点多", "豆浆太烫", "豆浆有点烫", "不是现做", "复炸"));

        FREE_KEYWORD_DICT.put("服务质量", Arrays.asList("不负责", "错送", "电话不通", "服务差", "漏送", "漏送菜品", "漏送餐具", "投诉", "欺诈", "没有筷子", "下错单", "乱收费", "未退款"));
        FREE_KEYWORD_DICT.put("菜品外观", Arrays.asList("糊了", "焦", "卖相不好", "与图片不符", "照片与实物不符", "色泽不够绿", "发黑", "不好看"));
        FREE_KEYWORD_DICT.put("媒体/政府类", Arrays.asList("12315.0", "曝光", "媒体", "消协", "消费者协会", "食药监", "食品药品监督局", "工商", "市场监管", "物价局", "消费者权益", "电视台", "报社", "3.15"));
        FREE_KEYWORD_DICT.put("清洁", Arrays.asList("不卫生", "桌椅脏", "餐具餐", "环境脏"));
        FREE_KEYWORD_DICT.put("菜品分量", Arrays.asList("量少", "不够吃", "小", "偷工减料", "蔬菜太少", "菜饭比例失调"));

    }

    /**
     * 免费版话题
     */
    public static final Map<String, String> FREE_VIEW = new HashMap<>();

    static {
        FREE_VIEW.put("VIEWS_LOCAL", "位置");
        FREE_VIEW.put("VIEWS_SERVICE", "服务");
        FREE_VIEW.put("VIEWS_PRICE", "价格");
        FREE_VIEW.put("VIEWS_ENVIROMMENT", "环境");
        FREE_VIEW.put("VIEWS_DISH", "菜品");
        FREE_VIEW.put("VIEWS_EXPERIENCE", "体验");
    }

    /**
     * 免费版话题字典
     */
    public static final Map<String, Map<String, List<String>>> FREE_VIEW_DICT = new HashMap<>();

    static {
        Map<String, List<String>> local = new HashMap<>();
        local.put("zh", Arrays.asList("交通便利", "靠近商圈", "位置容易找到"));
        local.put("row", Arrays.asList("location_traffic_convenience", "location_distance_from_business_district", "location_easy_to_find"));
        FREE_VIEW_DICT.put("位置", local);

        Map<String, List<String>> service = new HashMap<>();
        service.put("zh", Arrays.asList("排队感受", "服务态度", "停车方便", "服务速度", "提供发票", "包装外观", "设备"));
        service.put("row", Arrays.asList("service_wait_time", "service_waiters_attitude", "service_parking_convenience", "service_serving_speed"));
        FREE_VIEW_DICT.put("服务", service);

        Map<String, List<String>> price = new HashMap<>();
        price.put("zh", Arrays.asList("价格水平", "性价比", "价格折扣"));
        price.put("row", Arrays.asList("price_level", "price_cost_effective", "price_discount"));
        FREE_VIEW_DICT.put("价格", price);

        Map<String, List<String>> env = new HashMap<>();
        env.put("zh", Arrays.asList("环境装修", "环境噪音", "环境空间", "整洁卫生", "餐位设计"));
        env.put("row", Arrays.asList("environment_decoration", "environment_noise", "environment_space", "environment_cleaness"));
        FREE_VIEW_DICT.put("环境", env);

        Map<String, List<String>> dish = new HashMap<>();
        dish.put("zh", Arrays.asList("菜品份量", "菜品口味", "菜品外观", "菜品丰富", "菜品推荐"));
        dish.put("row", Arrays.asList("dish_portion", "dish_taste", "dish_look", "dish_recommendation"));
        FREE_VIEW_DICT.put("菜品", dish);

        Map<String, List<String>> exper = new HashMap<>();
        exper.put("zh", Arrays.asList("餐厅推荐", "愿意再次消费"));
        exper.put("row", Arrays.asList("others_overall_experience", "others_willing_to_consume_again"));
        FREE_VIEW_DICT.put("体验", exper);
    }
}
